#include <stdio.h>

// ANSI颜色控制码宏定义
#define RESET       "\033[0m"      // 重置所有属性
#define BLACK       "\033[30m"     // 黑色文本
#define RED         "\033[31m"     // 红色文本
#define GREEN       "\033[32m"     // 绿色文本
#define YELLOW      "\033[33m"     // 黄色文本
#define BLUE        "\033[34m"     // 蓝色文本
#define MAGENTA     "\033[35m"     // 洋红色文本
#define CYAN        "\033[36m"     // 青色文本
#define WHITE       "\033[37m"     // 白色文本

// 带背景色的文本
#define BGBLACK     "\033[40m"     // 黑色背景
#define BGRED       "\033[41m"     // 红色背景
#define BGGREEN     "\033[42m"     // 绿色背景
#define BGYELLOW    "\033[43m"     // 黄色背景
#define BGBLUE      "\033[44m"     // 蓝色背景
#define BGMAGENTA   "\033[45m"     // 洋红色背景
#define BGCYAN      "\033[46m"     // 青色背景
#define BGWHITE     "\033[47m"     // 白色背景

int main() 
{
    // 输出不同颜色的文本
    printf(RED "这是红色文本" RESET "\n");
    printf(GREEN "这是绿色文本" RESET "\n");
    printf(YELLOW "这是黄色文本" RESET "\n");
    printf(BLUE "这是蓝色文本" RESET "\n");
    printf(MAGENTA "这是洋红色文本" RESET "\n");
    printf(CYAN "这是青色文本" RESET "\n");
    printf(WHITE "这是白色文本" RESET "\n\n");

    // 输出带背景色的文本
    printf(BGRED WHITE "白色文本红色背景" RESET "\n");
    printf(BGGREEN BLACK "黑色文本绿色背景" RESET "\n");
    printf(BGBLUE WHITE "白色文本蓝色背景" RESET "\n\n");

    // 综合示例
    printf("这是" RED "红色" RESET "、" GREEN "绿色" RESET "和" BLUE "蓝色" RESET "的混合文本\n");

    return 0;
}
